/************************************************************************/
/*Copyright (c) James Zhao 2007,2008
/*This file is part of AdminOverlay.
/*AdminOverlay is free software: you can redistribute it and/or modify
/*it under the terms of the GNU General Public License as published by
/*the Free Software Foundation, either version 3 of the License, or
/*(at your option) any later version.
/*
/*AdminOverlay is distributed in the hope that it will be useful,
/*but WITHOUT ANY WARRANTY; without even the implied warranty of
/*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
/*GNU General Public License for more details.
/*
/*You should have received a copy of the GNU General Public License
/*along with Foobar.  If not, see <http://www.gnu.org/licenses/>.                                                                     */
/*************************************************************************/
#pragma once

#include "GraphicsKit.h"
#include "UIControl.h"

class UIManager;

class EXPORT_UIKIT  UIPanel : public UIControl
{
	Q_OBJECT

public:
	//so it can modify doDraw
	friend class UIManager;
public:
	UIPanel(int x = 0, int y = 0, int width = 0, int height = 0);
	~UIPanel(void);
public:
	void draw(LPDIRECT3DDEVICE9 device);
	void layout(QPoint offset);
	void onDeviceReset();
public:
	bool IsCenterAligned() const { return isCenterAligned; }
	void IsCenterAligned(bool val) { isCenterAligned = val; }
	DWORD BottomColor() const;
	void BottomColor(DWORD val);
	DWORD TopColor() const;
	void TopColor(DWORD val);
protected:
	void onBoundsChanged();
	QuadVisual *background;
	bool needPositionRecalc;
	bool isCenterAligned;
	bool doDraw;

private:
	static DWORD topColor;
	static DWORD bottomColor;
};
